home *** CD-ROM | disk | FTP | other *** search
- ;
- ; delay(n)
- ; int n;
- ;
- ; n = number of milliseconds to delay
- ;
- DELAY::
- POP H ; Return address
- POP D ; Delay Value
- PUSH D ; Restore Stack
- PUSH H ;
- DELAY1: ;# 51 (overhead) 12.5 usec.
- LXI B,123 ;# 10
- CALL DELAY2 ;# 3963 (17 + 10 + (123 X 32))
- DCX D ;# 5
- MOV A,D ;# 5
- ORA E ;# 4
- JNZ DELAY1 ;# 10
- RET ;--------
- ; 3997 cycles @ 250 nanosec per
- ; ---------------------------
- ; 0.99925 milliseconds
- ;
- ;
- ; Delay Loop set for 10 usec. per count based on 4 MHz clock
- ;
- DELAY2:
- DCX B ;# 5
- ORA A ;# 4
- ORA A ;# 4
- MOV A,B ;# 5
- ORA C ;# 4
- JNZ DELAY2 ;# 10
- RET ;#
- ;#------
- ;# 32 cycles @ 250 nanosec per = 12.5 usec.
- END